n = input()
l = ''
for i in n:
if i=='0':
l +='0'
elif i=='1':
l+='1'
else:
break
l+='1'*(len(n)-len(l))
print(int(l,2))
#include <bits/stdc++.h>
using namespace std;
#define fast ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
const long int N=1e6;
int main()
{
fast;
string n;
cin>>n;
long long int som=0;
vector<long long int>dp(n.length());
dp[0]=1;
for(long long int i(1);i<(n.length());i++){
dp[i]=dp[i-1];
dp[i]*=2;}
for(long long int i(0);i<(n.length());i++){
som+=dp[i];}
bool test=true;
for(long long int i(0);i<(n.length()-1);i++){
if(n[i]>'1'){test=false;break;}
if(n[i]=='0'){
som-=dp[n.length()-1]/dp[i];}}
if(test!=false){
if(n[n.length()-1]=='0'){
som-=1;}}
cout<<som<<endl;
return 0;}
1302. Deepest Leaves Sum | 1209. Remove All Adjacent Duplicates in String II |
994. Rotting Oranges | 983. Minimum Cost For Tickets |
973. K Closest Points to Origin | 969. Pancake Sorting |
967. Numbers With Same Consecutive Differences | 957. Prison Cells After N Days |
946. Validate Stack Sequences | 921. Minimum Add to Make Parentheses Valid |
881. Boats to Save People | 497. Random Point in Non-overlapping Rectangles |
528. Random Pick with Weight | 470. Implement Rand10() Using Rand7() |
866. Prime Palindrome | 1516A - Tit for Tat |
622. Design Circular Queue | 814. Binary Tree Pruning |
791. Custom Sort String | 787. Cheapest Flights Within K Stops |
779. K-th Symbol in Grammar | 701. Insert into a Binary Search Tree |
429. N-ary Tree Level Order Traversal | 739. Daily Temperatures |
647. Palindromic Substrings | 583. Delete Operation for Two Strings |
518. Coin Change 2 | 516. Longest Palindromic Subsequence |
468. Validate IP Address | 450. Delete Node in a BST |